bitkeeper revision 1.1236.1.128 (4243752c85MV0g7IdVNPy6olC7dJjQ)
authordjm@sportsman.spdomain <djm@sportsman.spdomain>
Fri, 25 Mar 2005 02:19:24 +0000 (02:19 +0000)
committerdjm@sportsman.spdomain <djm@sportsman.spdomain>
Fri, 25 Mar 2005 02:19:24 +0000 (02:19 +0000)
Turn on (and fix) do_initcalls so page scrub init
is called... otherwise page scrub softirq causes null
pointer deref

xen/arch/ia64/xensetup.c
xen/include/asm-ia64/init.h

index f16135da0671394613b6c06671786ef398c464a4..babf560ba4fb47571310f1922268e042089968dd 100644 (file)
@@ -140,7 +140,12 @@ xen_find_first_hole(u64 start, u64 end, void *arg)
     return 0;
 }
 
-
+static void __init do_initcalls(void)
+{
+    initcall_t *call;
+    for ( call = &__initcall_start; call < &__initcall_end; call++ )
+        (*call)();
+}
 
 void cmain(multiboot_info_t *mbi)
 {
@@ -240,7 +245,7 @@ printk("About to call ac_timer_init()\n");
     ac_timer_init();
 // init_xen_time(); ???
     schedulers_start();
-// do_initcalls(); ???
+    do_initcalls();
 printk("About to call sort_main_extable()\n");
     sort_main_extable();
 
index 8f1e76408081b3c540e3bab6dd2401671025f70c..e828ab6d856ad8e8432dba002aa9d5e63d60bc37 100644 (file)
@@ -16,7 +16,7 @@
 #define __initsetup  \
     __attribute_used__ __attribute__ ((__section__ (".setup.init")))
 #define __init_call  \
-    __attribute_used__ __attribute__ ((__section__ (".initcall.init")))
+    __attribute_used__ __attribute__ ((__section__ (".initcall1.init")))
 #define __exit_call  \
     __attribute_used__ __attribute__ ((__section__ (".exitcall.exit")))